// 初始化音乐列表
function initializeSongList() {
    var context = getContextPath();
    var startIndex = 0;  // 默认音乐列表起始查询页码
    var targetTotal = 3;  // 默认每页显示音乐条数
    $.ajax({
        url: context + "/admin/musicListServlet" + "?startIndex=" + startIndex + "&targetTotal=" + targetTotal,
        method: "GET",
        error: function () {
            alert("请求失败，请重试！")
        }
    });
}

// 填充编辑音乐模态框
$(document).ready(function () {
    var context = getContextPath();

    // 点击“修改”按钮事件
    $(".edit-btn").click(function () {
        var songId = $(this).data("id");

        // Ajax 请求获取音乐信息
        $.ajax({
            url: context + "/admin/getSongByIdServlet?songId=" + songId,
            method: "GET",
            success: function (response) {
                if (response.code === 1) {
                    var song = response.data;
                    // 填充模态框内容
                    $("#songId").val(song.songId);
                    $("#title").val(song.title);
                    $("#description").val(song.description);
                    $("#uploaderId").val(song.uploaderId);
                    $("#categoryId").val(song.categoryId);
                    $('#editMusicModal').modal('show');
                } else {
                    alert("fail" + (response.message || "fail"));
                }
            },
            error: function () {
                alert("请求失败，请重试！");
            }
        });
    });

    // 提交修改表单
    $('#editSongForm').submit(function (event) {
        event.preventDefault();
        var context = getContextPath();

        // 获取前端表单数据
        var songData = {
            songId: $('#songId').val(),
            title: $('#title').val(),
            description: $('#description').val(),
            uploaderId: $('#uploaderId').val(),
            categoryId: $('#categoryId').val(),
            filePath:$('#musicFile').val()
        };

        // 使用 Ajax 提交修改请求
        $.ajax({
            url: context + "/admin/editSongServlet",  // 需要创建该 Servlet
            method: "POST",
            // 告诉后端以JSON格式发送数据
            data: JSON.stringify(songData),
            success: function (response) {
                if (response.code === 1) {
                    // 更新成功
                    $('#editSongMsg').text('修改成功！').show();
                    $('#editMusicModal').modal('hide');
                    // 调用initializeMusicList刷新列表
                    initializeSongList();
                }
            },
            error: function () {
                $('#editSongMsg').text('请求失败，请重试！').show();
            }
        });
    });

});

// 删除音乐
$(".delete-btn").click(function () {
    var songId = $(this).data("id");
    var context = getContextPath();
    if (confirm("确定要删除该歌曲吗？")) {
        $.ajax({
            url: context + "/admin/deleteMusicServlet?songId=" + songId,
            method: "GET",
            success: function (response) {
                if (response.code == 1) {
                    // 删除成功后刷新音乐列表
                    initializeMusicList();
                } else {
                    alert("删除失败：" + response.message);
                }
            },
            error: function () {
                alert("删除失败，请稍后再试！");
            }
        });
    }
});

// 查询音乐
$(document).ready(function () {
    // 绑定查询按钮的点击事件
    $("#searchButton").on("click", function (event) {
        event.preventDefault(); // 阻止表单默认提交

        // 获取搜索栏输入的歌曲标题和分类
        var title = $("#songTitle").val();
        var categoryId = $("#categoryId").val();
        var context = getContextPath();

        // 使用 Ajax 向后端发送请求
        $.ajax({
            url: context + "/admin/searchMusicListServlet",  // 后端 Servlet 地址
            method: "GET",
            data: {
                title: title,
                categoryId: categoryId
            },
            dataType: 'json',
            contentType: 'application/json; charset=UTF-8',
            success: function (response) {
                if (response.code === 1 && response.data) {
                    // 清空表格内容
                    $("tbody").empty();

                    var musicList = response.data || [];

                    // 如果后端返回的音乐列表为空，显示提示信息
                    if (musicList.length === 0) {
                        $("tbody").append("<tr><td colspan='6'>暂无数据</td></tr>");
                    } else {
                        // 否则，动态生成新的音乐列表
                        $.each(musicList, function (index, music) {
                            var rowHtml = "<tr>" +
                                "<td>" + music.songId + "</td>" +
                                "<td>" + music.title + "</td>" +
                                "<td>" + music.description + "</td>" +
                                "<td>" + music.uploaderId + "</td>" +
                                "<td>" + music.categoryId + "</td>" +
                                "<td>" +
                                "<div class='btn-group'>" +
                                "<button class='btn btn-sm btn-warning edit-btn' data-id='" + music.songId + "'>修改</button>" +
                                "<button class='btn btn-sm btn-danger delete-btn' data-id='" + music.songId + "'>删除</button>" +
                                "</div>" +
                                "</td>" +
                                "</tr>";

                            $("tbody").append(rowHtml);
                        });
                    }
                } else {
                    alert("查询失败：" + (response.message || "未知错误"));
                }
            },
            error: function (xhr, status, error) {
                alert("查询失败，请稍后再试！" + (xhr.responseText || error));
            }
        });
    });
});
